from django.test import TestCase

# Create your tests here.
import pymysql

# 与mysql链接
meiduo_db ={
    'host': '127.0.0.1',
    'user': 'xinuei',   # 指定要连接的用户
    'password': "123456",
    'database': 'meiduo',  # 指定具体数据库
    'port': 3306,
    'charset': 'utf8',
}

meiduo_db = pymysql.connect(**meiduo_db)

# 创建游标对象，用于输入命令、保存数据
meiduo_dbh = meiduo_db.cursor()

# 从数据库中获取信息
    # 使用数据库命令 这里可以不加';'号
cmd = "select *from areas"
    # 输入命令，获取信息，返回信息数目,信息保存到游标对象中
a = meiduo_dbh.execute(cmd)
print('从数据库中获取到%s条数据' % a)
a = meiduo_dbh.execute("select *from tb_areas")
print('从数据库中获取到%s条数据' % a)
# all_message = meiduo_dbh.fetchall()
    # 插入获取的信息
# for msg in all_message:
#     print(msg)
#     cmd = 'insert into tb_areas(name, code, area_id) value("{}", {}, {})'.format(msg[1], int(msg[0]), int(msg[2]) if msg[2] else 'null')
#     print(cmd)
#     a = meiduo_dbh.execute(cmd)

meiduo_db.commit()
# one_msg = meiduo_dbh.fetchone()

# print(int(one_msg[0]))
# print(one_msg)
# 使用完数据库记得关闭，先关闭游标
meiduo_dbh.close()
meiduo_db.close()



# # 其他查看信息的方法
# one_msg = db_diy.fetchone()    # 查看第一条信息
# multimsg = db_diy.fetchmany(2) # 查看多条信息
# all_message = db_diy.fetchall() # 查看所有信息
#
# # 游标对象返回信息的方法明显使用了next()，而且不会重置，
# # 第二次返回信息时，不再从头开始返回数据
# print('查看第一条信息:\n', one_msg)
# print('查看多条信息:\n', multimsg)
# print('查看所有信息:\n', all_message)
# # 没有数据或游标移到数据末尾返回None

# # 向数据库中写入数据
#     # 输入命令
# cmd = 'insert into join1 value(6, "张翠山", "26", "武当山")'
# a = db_diy.execute(cmd)
#     # 提交保存
# cn_mysql_root.commit()
#     # pymysql 是通过事务模式来操作数据库数据的


